38 research outputs found
Correlates of programmer efficacy and their link to experience: a combined EEG and eye-tracking study
Background: Despite similar education and background, programmers can exhibit vast differences in efficacy. While research has
identified some potential factors, such as programming experience
and domain knowledge, the effect of these factors on programmers’
efficacy is not well understood.
Aims: We aim at unraveling the relationship between efficacy
(speed and correctness) and measures of programming experience.
We further investigate the correlates of programmer efficacy in
terms of reading behavior and cognitive load.
Method: For this purpose, we conducted a controlled experiment
with 37 participants using electroencephalography (EEG) and eye
tracking. We asked participants to comprehend up to 32 Java sourcecode snippets and observed their eye gaze and neural correlates of
cognitive load. We analyzed the correlation of participants’ efficacy
with popular programming experience measures.
Results: We found that programmers with high efficacy read source
code more targeted and with lower cognitive load. Commonly used
experience levels do not predict programmer efficacy well, but selfestimation and indicators of learning eagerness are fairly accurate.
Implications: The identified correlates of programmer efficacy
can be used for future research and practice (e.g., hiring). Future
research should also consider efficacy as a group sampling method,
rather than using simple experience measures
High-resolution cryo-EM structures of respiratory complex I : Mechanism, assembly, and disease
Respiratory complex I is a redox-driven proton pump, accounting for a large part of the electrochemical gradient that powers mitochondrial adenosine triphosphate synthesis. Complex I dysfunction is associated with severe human diseases. Assembly of the one-megadalton complex I in the inner mitochondrial membrane requires assembly factors and chaperones. We have determined the structure of complex I from the aerobic yeast Yarrowia lipolytica by electron cryo-microscopy at 3.2-angstrom resolution. A ubiquinone molecule was identified in the access path to the active site. The electron cryo-microscopy structure indicated an unusual lipid-protein arrangement at the junction of membrane and matrix arms that was confirmed by molecular simulations. The structure of a complex I mutant and an assembly intermediate provide detailed molecular insights into the cause of a hereditary complex I-linked disease and complex I assembly in the inner mitochondrial membrane.Peer reviewe
High-resolution cryo-EM structures of respiratory complex I : Mechanism, assembly, and disease
Respiratory complex I is a redox-driven proton pump, accounting for a large part of the electrochemical gradient that powers mitochondrial adenosine triphosphate synthesis. Complex I dysfunction is associated with severe human diseases. Assembly of the one-megadalton complex I in the inner mitochondrial membrane requires assembly factors and chaperones. We have determined the structure of complex I from the aerobic yeast Yarrowia lipolytica by electron cryo-microscopy at 3.2-angstrom resolution. A ubiquinone molecule was identified in the access path to the active site. The electron cryo-microscopy structure indicated an unusual lipid-protein arrangement at the junction of membrane and matrix arms that was confirmed by molecular simulations. The structure of a complex I mutant and an assembly intermediate provide detailed molecular insights into the cause of a hereditary complex I-linked disease and complex I assembly in the inner mitochondrial membrane.Peer reviewe
Harvey: A Greybox Fuzzer for Smart Contracts
We present Harvey, an industrial greybox fuzzer for smart contracts, which
are programs managing accounts on a blockchain. Greybox fuzzing is a
lightweight test-generation approach that effectively detects bugs and security
vulnerabilities. However, greybox fuzzers randomly mutate program inputs to
exercise new paths; this makes it challenging to cover code that is guarded by
narrow checks, which are satisfied by no more than a few input values.
Moreover, most real-world smart contracts transition through many different
states during their lifetime, e.g., for every bid in an auction. To explore
these states and thereby detect deep vulnerabilities, a greybox fuzzer would
need to generate sequences of contract transactions, e.g., by creating bids
from multiple users, while at the same time keeping the search space and test
suite tractable. In this experience paper, we explain how Harvey alleviates
both challenges with two key fuzzing techniques and distill the main lessons
learned. First, Harvey extends standard greybox fuzzing with a method for
predicting new inputs that are more likely to cover new paths or reveal
vulnerabilities in smart contracts. Second, it fuzzes transaction sequences in
a targeted and demand-driven way. We have evaluated our approach on 27
real-world contracts. Our experiments show that the underlying techniques
significantly increase Harvey's effectiveness in achieving high coverage and
detecting vulnerabilities, in most cases orders-of-magnitude faster; they also
reveal new insights about contract code.Comment: arXiv admin note: substantial text overlap with arXiv:1807.0787
Empirical Standards for Software Engineering Research
Empirical Standards are natural-language models of a scientific community's
expectations for a specific kind of study (e.g. a questionnaire survey). The
ACM SIGSOFT Paper and Peer Review Quality Initiative generated empirical
standards for research methods commonly used in software engineering. These
living documents, which should be continuously revised to reflect evolving
consensus around research best practices, will improve research quality and
make peer review more effective, reliable, transparent and fair.Comment: For the complete standards, supplements and other resources, see
https://github.com/acmsigsoft/EmpiricalStandard
Views on Internal and External Validity in Empirical Software Engineering
Abstract—Empirical methods have grown common in software engineering, but there is no consensus on how to apply them properly. Is practical relevance key? Do internally valid studies have any value? Should we replicate more to address the tradeoff between internal and external validity? We asked the community how empirical research should take place in software engineering, with a focus on the tradeoff between internal and external validity and replication, complemented with a literature review about the status of empirical research in software engineering. We found that the opinions differ considerably, and that there is no consensus in the community when to focus on internal or external validity and how to conduct and review replications. I